{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "<!--BOOK_INFORMATION-->\n",
    "<a href=\"https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-opencv\" target=\"_blank\"><img align=\"left\" src=\"data/cover.jpg\" style=\"width: 76px; height: 100px; background: white; padding: 1px; border: 1px solid black; margin-right:10px;\"></a>\n",
    "*This notebook contains an excerpt from the upcoming book [Machine Learning for OpenCV](https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-opencv) by Michael Beyeler (expected Aug 2017).\n",
    "The code is released under the [MIT license](https://opensource.org/licenses/MIT),\n",
    "and is available on [GitHub](https://github.com/mbeyeler/opencv-machine-learning).*\n",
    "\n",
    "*Note that this excerpt contains only the raw code - the book is rich with additional explanations and illustrations.\n",
    "If you find this content useful, please consider supporting the work by\n",
    "[buying the book](https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-opencv)!*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "<!--NAVIGATION-->\n",
    "< [Using Decision Trees to Diagnose Breast Cancer](05.02-Using-Decision-Trees-to-Diagnose-Breast-Cancer.ipynb) | [Contents](../README.md) | [Detecting Pedestrians with Support Vector Machines](06.00-Detecting-Pedestrians-with-Support-Vector-Machines.ipynb) >"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Using Decision Trees for Regression\n",
    "\n",
    "Although we have so far focused on using decision trees in classification tasks, you can also use them for regression. But, you will need to use Scikit-Learn again, as OpenCV does not provide this flexibility. We therefore only briefly review its functionality here.\n",
    "\n",
    "Let's say we wanted to use a decision tree to fit a sine wave. To make things interesting, we will also add some noise to the data points using NumPy's random number generator:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "rng = np.random.RandomState(42)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We then create 100 x values between 0 and 5, and calculate the corresponding sine values:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "X = np.sort(5 * rng.rand(100, 1), axis=0)\n",
    "y = np.sin(X).ravel()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We then add noise to every other data point in y (using y[::2]), scaled by 0.5 so we don't introduce to much jitter:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "y[::2] += 0.5 * (0.5 - rng.rand(50))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can then create regression tree like any other tree before. We will build two trees, one with a depth of 2, and one with a depth of 5:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "from sklearn import tree"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DecisionTreeRegressor(criterion='mse', max_depth=2, max_features=None,\n",
       "           max_leaf_nodes=None, min_impurity_split=1e-07,\n",
       "           min_samples_leaf=1, min_samples_split=2,\n",
       "           min_weight_fraction_leaf=0.0, presort=False, random_state=42,\n",
       "           splitter='best')"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "regr1 = tree.DecisionTreeRegressor(max_depth=2, random_state=42)\n",
    "regr1.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DecisionTreeRegressor(criterion='mse', max_depth=5, max_features=None,\n",
       "           max_leaf_nodes=None, min_impurity_split=1e-07,\n",
       "           min_samples_leaf=1, min_samples_split=2,\n",
       "           min_weight_fraction_leaf=0.0, presort=False, random_state=42,\n",
       "           splitter='best')"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "regr2 = tree.DecisionTreeRegressor(max_depth=5, random_state=42)\n",
    "regr2.fit(X, y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can then use the decision tree like a linear regressor from Chapter 3, First Steps in Supervised Learning. For this we create a test set with x values densely sampled in the whole range from 0 through 5:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "X_test = np.arange(0.0, 5.0, 0.01)[:, np.newaxis]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The predicted y values can then be obtained with the predict method:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "y_1 = regr1.predict(X_test)\n",
    "y_2 = regr2.predict(X_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If we plot all of these together, we can see how the decision trees differ:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7f7618329a58>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f761ccde2e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "plt.style.use('ggplot')\n",
    "\n",
    "plt.figure(figsize=(10, 6))\n",
    "plt.scatter(X, y, c='k', s=50, label='data')\n",
    "plt.plot(X_test, y_1, label=\"max_depth=2\", linewidth=5)\n",
    "plt.plot(X_test, y_2, label=\"max_depth=5\", linewidth=3)\n",
    "plt.xlabel(\"data\")\n",
    "plt.ylabel(\"target\")\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "<!--NAVIGATION-->\n",
    "< [Using Decision Trees to Diagnose Breast Cancer](05.02-Using-Decision-Trees-to-Diagnose-Breast-Cancer.ipynb) | [Contents](../README.md) | [Detecting Pedestrians with Support Vector Machines](06.00-Detecting-Pedestrians-with-Support-Vector-Machines.ipynb) >"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
